package com.example.nacosdemo.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * 简单的演示控制器，提供基本的API功能
 * 即使Nacos不可用也能正常工作，因为使用了默认值
 */
@RestController
@RefreshScope
@RequestMapping("/demo")
public class DemoController {

    // 使用默认值确保即使Nacos不可用也能正常工作
    @Value("${demo.config.message:默认演示消息}")
    private String message;

    @Value("${demo.config.timeout:30}")
    private int timeout;

    @Value("${demo.config.enabled:true}")
    private boolean enabled;

    @Value("${demo.config.tags:default,local}")
    private String[] tags;

    /**
     * 健康检查端点
     */
    @GetMapping("/health")
    public Map<String, String> health() {
        Map<String, String> response = new HashMap<>();
        response.put("status", "UP");
        response.put("message", "应用运行正常");
        return response;
    }

    /**
     * 演示消息端点
     */
    @GetMapping("/message")
    public String getMessage() {
        return message;
    }

    /**
     * 获取完整配置信息
     */
    @GetMapping("/config")
    public Map<String, Object> getConfig() {
        Map<String, Object> config = new HashMap<>();
        config.put("message", message);
        config.put("timeout", timeout);
        config.put("enabled", enabled);
        config.put("tags", tags);
        return config;
    }
}